trade_refund_query (退款查询)
查询退款信息,在支付宝上查询退款的时候没有退款标识就查询不到实际退款都有哪些,所以为了安全财务部门必须要手动对账才可以。
$type = 'weixin';
if($type == 'weixin'){
$this->load->library('WxPay');
$payment = $this->wxpay;
}else if($type == 'alipay'){
$this->load->library('AliPay');
$payment = $this->alipay;
}
$trade_no = '2017101621001004340289220052';
$payment->set_trade_no($trade_no);
$result = $payment->trade_refund_query();
$result2 = $payment->trade_refund_query('TK003');
$this->load->helper('payment');
$payment = load_payment_by_order_no($order_id);
$result = $payment->trade_refund_query();
请求参数
字段名 |
参数 |
类型 |
是否必填 |
描述 |
示例值 |
退款标识 |
$out_refund_no |
String(32) |
否 |
默认为null , 有退款标识的时候只查询一条退款信息 |
TK003 |
响应参数
字段名 |
参数 |
类型 |
是否必填 |
描述 |
执行结果状态 |
result_status |
Bool |
必填 |
true : SUCCESS ,PROCESSING ,false : 其他状态都是 |
状态码 |
result_code |
String(32) |
必填 |
执行结果状态码(详见底部状态码) |
状态描述 |
status_msg |
String(255) |
必填 |
执行结果状态描述 |
已退款单数 |
refund_count |
INT |
必填 |
- |
详细描述 |
status_sub_msg |
String(255) |
否 |
执行状态详细描述 |
退款形式 |
refund_type |
String(32) |
特殊 |
全额退款:ALL , 部分退款:PARTIAL (is_sure 为true 的时候返回) |
订单总金额 |
total_amount |
DECIMAL(10,2) |
必填(成功时) |
订单总金额 |
确保信息正确 |
is_sure |
Bool |
必填(成功时) |
保证信息是否正确(只有支付宝返回false的情况) |
已退款总金额 |
refund_amount |
DECIMAL(10,2) |
必填(成功时) |
订单已退款的总金额 |
子退款总金额 |
sub_refund_amount |
DECIMAL(10,2) |
必填(成功时) |
子退款信息里所有退款金额的合计 |
子退款信息 |
sub_refund |
Array |
必填(成功时) |
订单已退款的总金额 |
原数据 |
request_data |
Array |
否 |
支付平台回调的信息 |
确保信息
不正确(false
)的情况主要是不知道退款标识的时候。
订单没有关闭的情况下,没有退款交易的情况都会返回false
子退款订单响应参数
字段名 |
参数 |
类型 |
是否必填 |
描述 |
状态码 |
result_code |
String(32) |
必填 |
执行结果状态码(详见底部子订单退款结果状态码) |
退款标识 |
out_refund_no |
String(64) |
必填 |
支付平台的交易号 |
退款金额 |
refund_fee |
DECIMAL(10,2) |
必填 |
订单总金额 |
原数据 |
request_data |
Array |
否 |
支付平台回调的信息 |
执行结果状态码
状态码 |
描述 |
SUCCESS |
查询成功 |
NO_REFUND |
没有退款交易 |
REFUND_FAIL |
退款失败 (全部子订单都失败就属于退款失败) |
PROCESSING |
退款处理中 (只要有一个处理中的订单都属于处理中) |
NOTFOUND |
交易不存在 |
ERROR |
发生错误 |
子订单退款结果状态码
状态码 |
描述 |
SUCCESS |
查询成功 |
PROCESSING |
退款处理中 |
CLOSE |
退款关闭 |